package swapPairs;

import primaryAlgorithm.deleteNode.ListNode;

/**
 * @Date 2020/03/29
 * @author 王光浩
 * @Thinking 使用迭代实现
 * @Analysis 时间复杂度O（n），空间复杂度O（1）
 */
public class MyMethodTwo {
	public ListNode swapPairs(ListNode head) {
		if(head==null || head.next==null)return head;
		ListNode ret=head.next;
		//将第一个节点和第二个节点进行交换
		head.next=head.next.next;
		ret.next=head;
		ListNode node=head;
		//交换后面所有的节点
		while(node.next!=null && node.next.next!=null) {
			ListNode tem=node.next;
			node.next=node.next.next;
			tem.next=tem.next.next;
			node.next.next=tem;
			node=tem;
		}
		return ret;
	}
}	
